package dao;

import domain.Student;

import java.util.ArrayList;

public class OtherStudentDao implements BaseStudentDao{
    // 1.集合容器
    private static ArrayList<Student> stus = new ArrayList<>();

    // 静态代码块：初始化学生数据
    static {
        Student stu1 = new Student("itheima001", "张三", "24", "1999-11-1");
        Student stu2 = new Student("itheima002", "李四", "23", "2000-1-11");

        stus.add(stu1);
        stus.add(stu2);
    }

    // 添加学生的方法
    public boolean addStudent(Student stu) {
        stus.add(stu);
        return true;
    }

    // 查找学生的方法
    public Student[] findAllStudent() {
        // 创建新数组容器
        Student[] students = new Student[stus.size()];
        for (int i = 0; i < students.length; i++) {
            // 遍历新数组容器，获取每一个值存放到数组中
            students[i] = stus.get(i);
        }
        return students;
    }

    // 删除学生的方法
    public void deleteStudentById(String delId) {
        // 1.查找id在容器中所在的索引位道
        int index = getIndex(delId);
        stus.remove(index);
    }

    // 获取学生id的方法
    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.size(); i++) {
            Student stu = stus.get(i);
            if (stu != null && stu.getId().equals(id)) {
                index = i;
                break;
            }
        }
        return index;
    }

    // 修改学生信息的方法
    public void updateStudent(String updateId, Student newStu) {
        //1.查找updateId,在容器中的索引位置
        int index = getIndex(updateId);
        stus.set(index, newStu);
    }
}
